/**
* @file   DxFuncs.h
* @brief  Header file for class DxFuncs
* @date   2011-04-08 09:22:00
* @author Yanze Lian
* @email  <yanzel@gmail.com>
*/

#ifndef DxFuncs_H
#define DxFuncs_H

#include <streams.h>

class DxFuncs
{
public:
	DxFuncs();
	virtual ~DxFuncs();

	static HRESULT AddFilterByCLSID(
		IGraphBuilder *pGraph,  // Pointer to the Filter Graph Manager.
		const GUID& clsid,      // CLSID of the filter to create.
		LPCWSTR wszName,        // A name for the filter.
		IBaseFilter **ppF);      // Receives a pointer to the filter.

	static HRESULT GetUnconnectedPin(
		IBaseFilter *pFilter,   // Pointer to the filter.
		PIN_DIRECTION PinDir,   // Direction of the pin to find.
		IPin **ppPin);

	static HRESULT CreateFilterGraph(IGraphBuilder **pGraph);


	static HRESULT CreateFilter(REFCLSID clsid, IBaseFilter **ppFilter);

};



#endif //DxFuncs_H
